<!DOCTYPE html>
<html lang="">

<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width,initial-scale=1.0">
    <title>hmtoutiao17</title>
    <script>
        let dog = { name: 'ruiky' }
        // let a = dog.name;
        // dog.name = '熊医生'

        // { name: 'ruiky' , age}
        let age1 = 1;

        // 属性的 get/set 访问器 方法： 类似于 过滤器
        // 1.会在 通过 对象.属性  获取值的时候 调用 get方法
        // 2.通过 = 给 对象.属性 赋值时，会调用 set方法
        // 注意：有了get/set方法，就不能设置 value 和 writable
        Object.defineProperty(dog, 'age', {
            enumerable: true, // 当前成员是否 可以被 遍历(枚举)
            // value: 12, // 当前成员值
            // writable: true, // 设置当前【成员的值】是否可以被修改
            configurable: false,  // 设置当前【成员的配置】是都可以被修改
            // get 访问器
            get() {
                console.log('get 被调用啦！')
                return age1
            },
            // set 访问器
            set(val) {
                console.log('set 被调用啦！')
                age1 = val
            }
        })

        // dog.age = '讨厌厌'
        console.log(dog)


        // for (let key in dog) {
        //     console.log(key)
        // }
    </script>
</head>

<body>
</body>

</html>